package org.edu.modules.stu.biye.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.edu.common.base.BaseEntity;

import java.sql.Date;

import org.hibernate.validator.constraints.Length;

import java.io.Serializable;

/**
 * entity-毕业查询管理
 */
@TableName("ve_stu_graduation")
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "毕业查询管理对象", description = "ve_stu_graduation")
public class VeStuGraduation extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableField
    @ApiModelProperty(value = "学生id")
    private Integer stuId;

    @TableField
    @ApiModelProperty(value = "院系ID")
    private Integer falId;

    @TableField
    @ApiModelProperty(value = "院系名称")
    @Length(max = 100)
    private String falName;

    @TableField
    @ApiModelProperty(value = "专业ID")
    private Integer specId;

    @TableField
    @ApiModelProperty(value = "专业名称")
    @Length(max = 100)
    private String specName;

    @TableField
    @ApiModelProperty(value = "年级ID")
    private Integer gradeId;

    @TableField
    @ApiModelProperty(value = "班级ID")
    private Integer bjId;

    @TableField
    @ApiModelProperty(value = "班级名称")
    @Length(max = 100)
    private String bjName;

    @TableField
    @ApiModelProperty(value = "身份证号，唯一")
    @Length(max = 20)
    private String idcard;

    @TableField
    @ApiModelProperty(value = "学号")
    @Length(max = 20)
    private String code;

    @TableField
    @ApiModelProperty(value = "姓名")
    @Length(max = 20)
    private String name;

    @TableField
    @ApiModelProperty(value = "性别码1男生2女生")
    @Length(max = 4)
    private String sex;

    @TableField
    @ApiModelProperty(value = "出生日期")
    @JsonFormat(timezone = "GMT+8", locale = "zh", pattern = "yyyy-MM-dd")
    private Date csDate;

    @TableField
    @ApiModelProperty(value = "入学年月")
    private Integer rxDate;

    @TableField
    @ApiModelProperty(value = "学制;与学制表关联")
    private Integer xz;

    @TableField
    @ApiModelProperty(value = "学制名称")
    @Length(max = 45)
    private String xzName;

    @TableField
    @ApiModelProperty(value = "结束学业年月")
    private Integer jsxyDate;

    @TableField
    @ApiModelProperty(value = "结束学业码（1=>毕业，2=>结业，3=>未结业，4=>肄业）GB/T 14946.1 －2009 附录 A.27，默认为空，待录入")
    @Length(max = 10)
    private String jsxym;

    @TableField
    @ApiModelProperty(value = "结束学业原因说明")
    @Length(max = 500)
    private String jsxyReson;

    @TableField
    @ApiModelProperty(value = "毕业证书号")
    @Length(max = 40)
    private String byZsh;

    @TableField
    @ApiModelProperty(value = "学位证书号")
    @Length(max = 40)
    private String xwZsh;

    @TableField
    @ApiModelProperty(value = "结业证书号")
    @Length(max = 30)
    private String jyZsh;

    @TableField
    @ApiModelProperty(value = "获毕业证书日期")
    @JsonFormat(timezone = "GMT+8", locale = "zh", pattern = "yyyy-MM-dd")
    private Date byDate;

    @TableField
    @ApiModelProperty(value = "获学位证书日期")
    @JsonFormat(timezone = "GMT+8", locale = "zh", pattern = "yyyy-MM-dd")
    private Date xwDate;

    @TableField
    @ApiModelProperty(value = "获结业证书日期")
    @JsonFormat(timezone = "GMT+8", locale = "zh", pattern = "yyyy-MM-dd")
    private Date jyDate;

    @TableField
    @ApiModelProperty(value = "证书打印次数，0为未打印")
    private Integer bookPrintTimes;

    @TableField
    @ApiModelProperty(value = "预先生成的毕业证书编号")
    @Length(max = 40)
    private String preByzsh;
}
